<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
    <title>Reference</title>
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
	<div id="product_logo"></div>
	<div id="product_name"><big><b></b></big></div>
	<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<br/>
<h1>Duplex</h1>

<ul>
  <li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Tables">Tables</a></li>
</ul>


<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
  <li><a href="../modules/Duplex.Application.html">Duplex.Application</a></li>
  <li><a href="../modules/Duplex.Applications.Effect.html">Duplex.Applications.Effect</a></li>
  <li><a href="../modules/Duplex.Applications.GridPie.html">Duplex.Applications.GridPie</a></li>
  <li><a href="../modules/Duplex.Applications.Hydra.html">Duplex.Applications.Hydra</a></li>
  <li><a href="../modules/Duplex.Applications.Instrument.html">Duplex.Applications.Instrument</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.GridLayout.html">Duplex.Applications.Keyboard.GridLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.HarmonicLayout.html">Duplex.Applications.Keyboard.Layouts.HarmonicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.IsomorphicLayout.html">Duplex.Applications.Keyboard.Layouts.IsomorphicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.PianoLayout.html">Duplex.Applications.Keyboard.Layouts.PianoLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.html">Duplex.Applications.Keyboard</a></li>
  <li><a href="../modules/Duplex.Applications.Matrix.html">Duplex.Applications.Matrix</a></li>
  <li><a href="../modules/Duplex.Applications.Metronome.html">Duplex.Applications.Metronome</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.Bindings.html">Duplex.Applications.MidiActions.Bindings</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.html">Duplex.Applications.MidiActions</a></li>
  <li><a href="../modules/Duplex.Applications.Mixer.html">Duplex.Applications.Mixer</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_group.html">Duplex.Applications.Mlrx.Mlrx_group</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_note.html">Duplex.Applications.Mlrx.Mlrx_note</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_pos.html">Duplex.Applications.Mlrx.Mlrx_pos</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_track.html">Duplex.Applications.Mlrx.Mlrx_track</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.html">Duplex.Applications.Mlrx</a></li>
  <li><a href="../modules/Duplex.Applications.Navigator.html">Duplex.Applications.Navigator</a></li>
  <li><a href="../modules/Duplex.Applications.NotesOnWheels.html">Duplex.Applications.NotesOnWheels</a></li>
  <li><a href="../modules/Duplex.Applications.PatternCursor.html">Duplex.Applications.PatternCursor</a></li>
  <li><a href="../modules/Duplex.Applications.PatternSequence.html">Duplex.Applications.PatternSequence</a></li>
  <li><a href="../modules/Duplex.Applications.Recorder.html">Duplex.Applications.Recorder</a></li>
  <li><a href="../modules/Duplex.Applications.Repeater.html">Duplex.Applications.Repeater</a></li>
  <li><a href="../modules/Duplex.Applications.Rotate.html">Duplex.Applications.Rotate</a></li>
  <li><a href="../modules/Duplex.Applications.StepSequencer.html">Duplex.Applications.StepSequencer</a></li>
  <li><a href="../modules/Duplex.Applications.SwitchConfiguration.html">Duplex.Applications.SwitchConfiguration</a></li>
  <li><a href="../modules/Duplex.Applications.TestPad.html">Duplex.Applications.TestPad</a></li>
  <li><a href="../modules/Duplex.Applications.TrackSelector.html">Duplex.Applications.TrackSelector</a></li>
  <li><a href="../modules/Duplex.Applications.Transport.html">Duplex.Applications.Transport</a></li>
  <li><a href="../modules/Duplex.Applications.UIButtonTest.html">Duplex.Applications.UIButtonTest</a></li>
  <li><a href="../modules/Duplex.Applications.XYPad.html">Duplex.Applications.XYPad</a></li>
  <li><a href="../modules/Duplex.Automation.html">Duplex.Automation</a></li>
  <li><a href="../modules/Duplex.Browser.html">Duplex.Browser</a></li>
  <li><a href="../modules/Duplex.BrowserProcess.html">Duplex.BrowserProcess</a></li>
  <li><a href="../modules/Duplex.Canvas.html">Duplex.Canvas</a></li>
  <li><a href="../modules/Duplex.CanvasPoint.html">Duplex.CanvasPoint</a></li>
  <li><a href="../modules/Duplex.ControlMap.html">Duplex.ControlMap</a></li>
  <li><a href="../modules/Duplex.Device.html">Duplex.Device</a></li>
  <li><a href="../modules/Duplex.Display.html">Duplex.Display</a></li>
  <li><a href="../modules/Duplex.Globals.html">Duplex.Globals</a></li>
  <li><a href="../modules/Duplex.Message.html">Duplex.Message</a></li>
  <li><a href="../modules/Duplex.MessageStream.html">Duplex.MessageStream</a></li>
  <li><a href="../modules/Duplex.MidiDevice.html">Duplex.MidiDevice</a></li>
  <li><a href="../modules/Duplex.OscClient.html">Duplex.OscClient</a></li>
  <li><a href="../modules/Duplex.OscDevice.html">Duplex.OscDevice</a></li>
  <li><a href="../modules/Duplex.OscVoiceMgr.html">Duplex.OscVoiceMgr</a></li>
  <li><a href="../modules/Duplex.Preferences.html">Duplex.Preferences</a></li>
  <li><a href="../modules/Duplex.ProcessSlicer.html">Duplex.ProcessSlicer</a></li>
  <li><a href="../modules/Duplex.RoamingDSP.html">Duplex.RoamingDSP</a></li>
  <li><a href="../modules/Duplex.Scheduler.html">Duplex.Scheduler</a></li>
  <li><a href="../modules/Duplex.StateController.html">Duplex.StateController</a></li>
  <li><a href="../modules/Duplex.UIButton.html">Duplex.UIButton</a></li>
  <li><a href="../modules/Duplex.UIButtonStrip.html">Duplex.UIButtonStrip</a></li>
  <li><a href="../modules/Duplex.UIComponent.html">Duplex.UIComponent</a></li>
  <li><a href="../modules/Duplex.UIKey.html">Duplex.UIKey</a></li>
  <li><a href="../modules/Duplex.UIKeyPressure.html">Duplex.UIKeyPressure</a></li>
  <li><a href="../modules/Duplex.UILabel.html">Duplex.UILabel</a></li>
  <li><a href="../modules/Duplex.UIPad.html">Duplex.UIPad</a></li>
  <li><a href="../modules/Duplex.UIPitchBend.html">Duplex.UIPitchBend</a></li>
  <li><a href="../modules/Duplex.UISlider.html">Duplex.UISlider</a></li>
  <li><a href="../modules/Duplex.UISpinner.html">Duplex.UISpinner</a></li>
  <li><strong>Duplex.WidgetHooks</strong></li>
  <li><a href="../modules/Duplex.WidgetKeyboard.html">Duplex.WidgetKeyboard</a></li>
  <li><a href="../modules/Duplex.html">Duplex</a></li>
  <li><a href="../modules/main.html">main</a></li>
</ul>

</div>

<div id="content">

<h1>Module <code>Duplex.WidgetHooks</code></h1>
<p>Provide hooks for controls in the virtual control surface (native &amp; custom)</p>
<p>
<h3>process_subparams()</h3>

<p>  Description:
  when parsing the controlmap, apply widget-specific attributes</p>

<p>  See also <a href="../modules/Duplex.ControlMap.html#_parse_xml">Duplex.ControlMap._parse_xml</a></p>

<p>  Parameters:</p>

<ul>
    <li>param</li>
    <li>subparam</li>
</ul>

<h3>build()</h3>

<p>  Description
  create the actual viewbuilder components, including a notifier method</p>

<p>  See also <a href="../modules/Duplex.Display.html#_walk_table">Duplex.Display._walk_table</a></p>

<p>  Parameters</p>

<ul>
    <li>display</li>
    <li>param</li>
</ul>

<p>  Return</p>

<ul>
    <li>renoise.Views.View</li>
</ul>

<h3>validate()</h3>

<p>  Description:
  validate/fix parameters and try to give the control map author some hints of what might be wrong with the control map</p>

<p>  See also <a href="../modules/Duplex.Display.html#_walk_table">Duplex.Display._walk_table</a></p>

<p>  Parameters</p>

<ul>
    <li>display</li>
    <li>param</li>
    <li>cm</li>
</ul>

<h3>set_subparams()</h3>

<p>  Description:
  handle outgoing messages for parameters that include subparameters </p>

<p>  See also <a href="../modules/Duplex.Display.html#set_parameter">Duplex.Display.set_parameter</a></p>

<p>  Parameters:</p>

<ul>
    <li>display</li>
    <li>param</li>
    <li>point</li>
    <li>ui_obj</li>
</ul>

<h3>set_widget()</h3>

<p>  Description:
  update the widget in the virtual control surface - define this when the widget needs a more complex display-update (for example, a button is more complex than a slider) </p>

<p>  See also <a href="../modules/Duplex.Display.html#set_parameter">Duplex.Display.set_parameter</a></p>

<p>  Parameters:</p>

<ul>
    <li>display</li>
    <li>widget</li>
    <li>param</li>
    <li>ui_obj</li>
    <li>point</li>
    <li>value</li>
</ul>

<h3>on_receive()</h3>

<p>  Description:
  do something clever when an incoming message arrives</p>

<p>  See also <a href="../modules/Duplex.OscDevice.html#receive_osc_message">Duplex.OscDevice.receive_osc_message</a></p>

<ul>
    <li>device</li>
    <li>param</li>
    <li>msg</li>
    <li>regex</li>
</ul>

<h3>on_send()</h3>

<p>  Description:
  perform last-minute changes before transmitting to hardware</p>



</p>


<h2><a href="#Tables">Tables</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.fader">widget_hooks.fader</a></td>
	<td class="summary">function - fader widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.dial">widget_hooks.dial</a></td>
	<td class="summary">function - dial widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.button">widget_hooks.button</a></td>
	<td class="summary">function - button widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.xypad">widget_hooks.xypad</a></td>
	<td class="summary">function - xypad widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.label">widget_hooks.label</a></td>
	<td class="summary">function - label widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.key">widget_hooks.key</a></td>
	<td class="summary">function - key widget</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#widget_hooks.keyboard">widget_hooks.keyboard</a></td>
	<td class="summary">function - keyboard widget</td>
	</tr>
</table>

<br/>
<br/>


    <h2><a name="Tables"></a>Tables</h2>
    <dl class="function">
    <dt>
    <a name = "widget_hooks.fader"></a>
    <strong>widget_hooks.fader</strong>
    </dt>
    <dd>
    function - fader widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">min</span>



        </li>
        <li><span class="parameter">max</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">width</span>



        </li>
        <li><span class="parameter">height</span>



        </li>
        <li><span class="parameter">notifier</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.dial"></a>
    <strong>widget_hooks.dial</strong>
    </dt>
    <dd>
    function - dial widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">min</span>



        </li>
        <li><span class="parameter">max</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">width</span>



        </li>
        <li><span class="parameter">height</span>



        </li>
        <li><span class="parameter">notifier</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.button"></a>
    <strong>widget_hooks.button</strong>
    </dt>
    <dd>
    function - button widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">width</span>



        </li>
        <li><span class="parameter">height</span>



        </li>
        <li><span class="parameter">text</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">pressed</span>



        </li>
        <li><span class="parameter">released</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.xypad"></a>
    <strong>widget_hooks.xypad</strong>
    </dt>
    <dd>
    function - xypad widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">process_subparams</span>



        </li>
        <li><span class="parameter">subparam</span>



        </li>
        <li><span class="parameter">set_subparams</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">point</span>



        </li>
        <li><span class="parameter">ui_obj</span>



        </li>
        <li><span class="parameter">subparam</span>



        </li>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">axis_y</span>



        </li>
        <li><span class="parameter">nil</span>



        </li>
        <li><span class="parameter">subparam</span>



        </li>
        <li><span class="parameter">min</span>



        </li>
        <li><span class="parameter">y</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.label"></a>
    <strong>widget_hooks.label</strong>
    </dt>
    <dd>
    function - label widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">text</span>



        </li>
        <li><span class="parameter">font</span>



        </li>
        <li><span class="parameter">width</span>



        </li>
        <li><span class="parameter">height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.key"></a>
    <strong>widget_hooks.key</strong>
    </dt>
    <dd>
    function - key widget [[


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">adj_width</span>



        </li>
        <li><span class="parameter">adj_height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">width</span>



        </li>
        <li><span class="parameter">height</span>



        </li>
        <li><span class="parameter">tooltip</span>



        </li>
        <li><span class="parameter">pressed</span>



        </li>
        <li><span class="parameter">released</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "widget_hooks.keyboard"></a>
    <strong>widget_hooks.keyboard</strong>
    </dt>
    <dd>
    function - keyboard widget


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">build</span>



        </li>
        <li><span class="parameter">validate</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">cm</span>
        [[
        </li>
        <li><span class="parameter">set_widget</span>



        </li>
        <li><span class="parameter">widget</span>



        </li>
        <li><span class="parameter">xarg</span>



        </li>
        <li><span class="parameter">ui_obj</span>



        </li>
        <li><span class="parameter">point</span>



        </li>
        <li><span class="parameter">value</span>



        </li>
        <li><span class="parameter">]</span>



        </li>
        <li><span class="parameter">param</span>



        </li>
        <li><span class="parameter">msg</span>



        </li>
        <li><span class="parameter">regex</span>



        </li>
        <li><span class="parameter">v</span>



        </li>
    </ul>





</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
